home *** CD-ROM | disk | FTP | other *** search
- /*//////////////////////////////////////////////////////////////////////
- filename: ws_misc.js
- copyright(c): 2002, 2003 Tiny Software Inc (http://www.tinysoftware.com)
- author: Martin Navratil (mnavratil@tinysoftware.com)
- product: Tiny Personal Firewall 5.x
- description: javascript functions for ws_misc.html
- ///////////////////////////////////////////////////////////////////////*/
- var ERR_GET_MODULE_PARSER = "Error: Cannot get Parser object for Sandbox",
- ERR_GET_RULELIST = "Error: Cannot get rule list from parser",
- THIS_DIV = "misc",
- HTML_THIS_DIV_HEADER = '<DIV id=' + THIS_DIV + '>',
- HTML_THIS_DIV_TRAILER = "</DIV>",
- HTML_TABLE_HEADER = '<table border="1" align="center" cellpadding=5 cellspacing=0 bordercolor="#000000" bgcolor="#E7EFF7">',
- HTML_TABLE_TRAILER = "</table>",
- HTML_TABLE_LABEL_HEADER1 = "<table width=100% border=0 cellspacing=0 cellpadding=0><tr bgcolor=",
- HTML_TABLE_LABEL_HEADER2 = "><td height=25 align=middle><font color=white><B>",
- HTML_TABLE_LABEL_TRAILER = "</B></font></td></tr></table>",
- HTML_TABLES_SEPARATOR = "<BR/><BR/>"
- HTML_ROW_HEADER = '<TR height="40">',
- HTML_SYSTEM_ROW_HEADER = '<TR height="40" bgcolor="#f2f2f2">',
- HTML_ROW_TRAILER = "</TR>",
- HTML_HEADER_HEADER = '<TH style="font-face:bold;font-size:8pt;">',
- HTML_HEADER_TRAILER = "</TH>",
- HTML_CELL_HEADER = "<TD align=center>",
- HTML_CELL_TRAILER = "</TD>",
- HTML_ID_EDIT_HEADER = '<INPUT type=edit size=3 ',
- HTML_ID_EDIT_TRAILER = '></INPUT>',
- HTML_ID_LINK_HEADER = '<A href=# ',
- HTML_ID_LINK_TRAILER = '</A>',
- HTML_INSERT_USER_RULE = '<IMG src="ico-plus.gif" align=absMiddle alt = "Rule for non-system processes"/> Rule for non-system apps',
- HTML_INSERT_SYSTEM_RULE = '<IMG src="ico-plus.gif" align=absMiddle alt = "Rule for system processes"/> Rule for system apps',
- HTML_ADD_EXISTING = '<IMG src="ico-plus.gif" align=absMiddle alt = "Add existing rule"/>Add existing rule',
- HTML_ICO_MINUS = '<IMG src="ico-minus.gif" alt="Delete rule"/>',
- HTML_SELECT_HEADER = '<SELECT ',
- HTML_SELECT_TRAILER = '></SELECT>',
- HTML_OPTION_HEADER = '<OPTION value="',
- HTML_OPTION_TRAILER = '</OPTION>';
- HTML_DISABLED = 'disabled';
-
- var NO_COLUMNS = 9;
-
- var TXT_PRO_HIGH_MASTER = "High Priority List - Common rules",
- TXT_CLIENT = "Medium Priority List - Non-Privileged User Defined",
- TXT_PRO_LOW_MASTER = "Low Priority List - Common rules",
- TXT_DELETING = "Deleting rule",
- TXT_QST_REALLYDELETE1 = 'Do you really want to delete ',
- TXT_QST_REALLYDELETE2 = ' from the list of rules?',
- TXT_NEW_EXC_APP = 'Enter app./group',
-
- // columns
- TXT_ID_CAPTION = "Rule #",
- TXT_APP_CAPTION = "Application to trigger the rule",
- TXT_VBA_MACR = "VBA Macro",
- TXT_VBA_AUTO = "VBA Auto Macro",
- TXT_SYS_FPTT = "Forced proc./<br>thread termination",
- TXT_SYS_SSHD = "System shutdown",
- TXT_SYS_SSOS = "Set object security",
- TXT_SYS_SIJC = "Inject code",
- TXT_SYS_SASP = "Acquire system privileges",
- TXT_SYS_SLLA = "System low level api",
- TXT_SYS_CBAC = "Clipboard access",
- TXT_DEV_DANG = "Dangerous device access",
- TXT_ASGNMT = ((iContext || iManaged) ? "Assignment" : "Users"),
- TXT_ALLUSERS = "All Users (*)",
- TXT_SAFETOINJECT = "Select dlls (groups) which bypass the Inject code restrictions";
-
- var arrAccessResultStrings = new Array("Prevent", "Allow", "Ask User");
- var arrAuditLevelStrings = new Array("Ignore", "Monitor", "Alert");
- var arrVBAOptions = new Array("Inherit from parent", "Use custom settings",
- "Do not run macro");
- var arrGuardIds = new Array('V'.charCodeAt(0), 'Y'.charCodeAt(0), 'G'.charCodeAt(0)),
- strDisabled = new Array(3);
-
- var AR_ALLOW = 0x0001,
- AR_PREVENT = 0x0000,
- AR_ASKUSER = 0x0002;
-
- var AL_IGNORE = 0x0000,
- AL_MONITOR = 0x0001,
- AL_ALERT = 0x0002;
-
- var OT_VBAMACRO = 0x00000020,
- OT_SYSTEMPRIV = 0x00000080,
- OT_DEVICEPRIV = 0x00000100;
-
- var PRIOR_LOW = 0,
- PRIOR_NORMAL = 1,
- PRIOR_HIGH = 2;
-
- var RT_DIRECT = 0,
- RT_DEFINITION = RT_DIRECT + 1;
-
- var AT_VBA_MACRO_RUN_IN_ORIG = 0x00000001,
- AT_VBA_MACRO_RUN_IN_SPECIAL = 0x00000002,
- AT_VBA_AUTO_RUN_IN_ORIG = 0x00000004,
- AT_VBA_AUTO_RUN_IN_SPECIAL = 0x00000008,
- AT_VBA_FULL = 0x00000005,
-
- AT_SYSPRIV_FORCED_PROC_THREAD_TERM = 0x00002000,
- AT_SYSPRIV_SYSTEMSHUTDOWN = 0x00000100,
- // AT_SYSPRIV_SYSTEMLOWLEVELAPI = 0x00001000,
- AT_SYSPRIV_SETOBJSECURITY = 0x00000200,
- AT_SYSPRIV_INJECTCODE = 0x00001000,
- AT_SYSPRIV_ACQUIRESYSPRIV = 0x00008000,
- AT_SYSPRIV_CLIPBOARDACCESS = 0x00004000,
- AT_SYSPRIV_ALL = 0x0000F300,
-
- AT_DEVPRIV_DANGEROUSDEVICEACCESS = 0x00000002;
-
- var iLastIndex = -1;
-
- var iShowAdvRules = chkShowObjects.checked ? 0 : 4;
-
- var arrARImgSrc = new Array(),
- arrALImgSrc = new Array(),
- arrARTitles = new Array(),
- arrALTitles = new Array();
-
- arrARImgSrc[AR_ALLOW] = "allow.gif";
- arrARImgSrc[AR_PREVENT] = "prevent.gif";
- arrARImgSrc[AR_ASKUSER] = "askuser.gif";
-
- arrALImgSrc[AL_IGNORE] = "ignore.gif";
- arrALImgSrc[AL_MONITOR] = "monitor.gif";
- arrALImgSrc[AL_ALERT] = "alert.gif";
-
- arrARTitles[AR_ALLOW] = "Allow";
- arrARTitles[AR_PREVENT] = "Prevent";
- arrARTitles[AR_ASKUSER] = "Ask User";
-
- arrALTitles[AL_IGNORE] = "Ignore";
- arrALTitles[AL_MONITOR] = "Monitor";
- arrALTitles[AL_ALERT] = "Alert";
-
- var arrLinksApp = new Array();
-
- var VbaAccessTypes = new Array(4);
- VbaAccessTypes[0] = AT_VBA_MACRO_RUN_IN_ORIG;
- VbaAccessTypes[1] = AT_VBA_MACRO_RUN_IN_SPECIAL;
- VbaAccessTypes[2] = AT_VBA_AUTO_RUN_IN_ORIG;
- VbaAccessTypes[3] = AT_VBA_AUTO_RUN_IN_SPECIAL;
-
- var SysprivAccessTypes = new Array(6);
- SysprivAccessTypes[0] = AT_SYSPRIV_FORCED_PROC_THREAD_TERM;
- SysprivAccessTypes[1] = AT_SYSPRIV_SYSTEMSHUTDOWN;
- SysprivAccessTypes[2] = AT_SYSPRIV_SETOBJSECURITY;
- SysprivAccessTypes[3] = AT_SYSPRIV_INJECTCODE;
- SysprivAccessTypes[4] = AT_SYSPRIV_ACQUIRESYSPRIV;
- SysprivAccessTypes[5] = AT_SYSPRIV_CLIPBOARDACCESS;
-
- var strHeaders = new Array(NO_COLUMNS);
- strHeaders[0] = TXT_ID_CAPTION;
- strHeaders[1] = TXT_APP_CAPTION;
- strHeaders[2] = TXT_SYS_FPTT;
- strHeaders[3] = TXT_SYS_SSHD;
- strHeaders[4] = TXT_SYS_SSOS;
- strHeaders[5] = TXT_SYS_SIJC;
- strHeaders[6] = TXT_SYS_SASP;
- strHeaders[7] = TXT_SYS_CBAC;
- strHeaders[8] = TXT_ASGNMT;
-
-
- var arrAllClientRules = null, // all VBA, SysPrio, DevPrio rules from Client db
- arrAllServerRules = null, // dtto. from server db
- arrRuleTriples; // rule triples from both dbs grouped by app/group
- var ClientRuleList, ServerRuleList;
-
- var firstLabel = new Array(),
- arrLabelTypes = new Array();
-
- var iMaxServerId = 0, iMaxClientId = 0;
-
- //function SetAssignment(str)
- //{
- // strAsgnmt = str;
- // _ruleList.innerHTML = GetRuleList();
- //}
-
- function RuleTriple(r1, r2, r3)
- {
- this[0] = r1;
- this[1] = r2;
- this[2] = r3;
- }
-
- function LoadAllRules(ruleList, arrRulesToStore)
- {
- var i, j, maxId = 0;
- ruleListEnum = new Enumerator(ruleList);
- ruleListEnum.moveFirst();
- j = arrRulesToStore.length;
- while (!ruleListEnum.atEnd())
- {
- //add option to array
- var rule = ruleListEnum.item();
-
- var id;
- var curOT = rule.ObjectType;
- if (curOT == OT_VBAMACRO || curOT == OT_SYSTEMPRIV || curOT == OT_DEVICEPRIV)
- {
- id = GetRuleID(rule);
- if (id > maxId)
- maxId = id;
-
- // find 'full' access type, convert it into specific access types
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- if (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- switch(curOT)
- {
- case OT_VBAMACRO:
- if (acCur.AccessType == AT_VBA_FULL)
- {
- adList.Clear();
- for (i = 0; i < 4; i++)
- {
- var ad = adList.CreateAccessDescriptor();
- ad.AccessType = VbaAccessTypes[i];
- ad.AccessResult = acCur.AccessResult;
- ad.AuditLevel = acCur.AuditLevel;
- adList.Insert(ad);
- }
- }
- break;
- case OT_SYSTEMPRIV:
- if (acCur.AccessType == AT_SYSPRIV_ALL)
- {
- adList.Clear();
- for (i = 0; i < 6; i++)
- {
- var ad = adList.CreateAccessDescriptor();
- ad.AccessType = SysprivAccessTypes[i];
- ad.AccessResult = acCur.AccessResult;
- ad.AuditLevel = acCur.AuditLevel;
- adList.Insert(ad);
- }
- }
- break;
- }
- }
-
- arrRulesToStore[j++] = rule;
- }
- ruleListEnum.moveNext(); //Get next rule
- }
- return maxId;
- }
-
- function GetRuleList()
- {
- var Option, OptList, strRules = HTML_THIS_DIV_HEADER;
-
- iShowAdvRules = chkShowObjects.checked ? 0 : 4;
-
- if (iContext)
- iManaged = 1;
-
- if (iContext == 0)
- strAsgnmt = window.external.LoggedUser;
-
- try
- {
- if (ServerParser != null)
- ServerRuleList = ServerParser.RuleList;
- if (ClientParser != null)
- ClientRuleList = ClientParser.RuleList;
- } catch(e)
- {
- alert(ERR_GET_RULELIST);
- return;
- }
-
- arrAllClientRules = new Array();
- arrAllServerRules = new Array();
- arrRuleTriples = new Array();
-
- if ((iContext == 0 && iManaged == 1) || !bIsAdmin)
- {
- strDisabled[PRIOR_HIGH] = HTML_DISABLED;
- strDisabled[PRIOR_LOW] = HTML_DISABLED;
- }
- else
- {
- strDisabled[PRIOR_HIGH] = '';
- strDisabled[PRIOR_LOW] = '';
- }
-
- strDisabled[PRIOR_NORMAL] = "";
-
- if (ClientRuleList)
- iMaxClientId = LoadAllRules(ClientRuleList, arrAllClientRules);
- if (ServerRuleList)
- iMaxServerId = LoadAllRules(ServerRuleList, arrAllServerRules);
-
- if (ServerRuleList != null && (iShowAdvRules == 0 || iShowAdvRules == 2 || iShowAdvRules == 3))
- {
- strRules = HTML_TABLE_LABEL_HEADER1 + "#01088b" + HTML_TABLE_LABEL_HEADER2 + TXT_PRO_HIGH_MASTER + HTML_TABLE_LABEL_TRAILER;
- strRules += GetRuleListByPriority(arrAllServerRules, PRIOR_HIGH, "Server")
- + HTML_TABLES_SEPARATOR;
- }
-
- if (ClientRuleList != null && (iShowAdvRules == 0 || iShowAdvRules == 1))
- {
- strRules += HTML_TABLE_LABEL_HEADER1 + "#7aa1e6" + HTML_TABLE_LABEL_HEADER2 + TXT_CLIENT + HTML_TABLE_LABEL_TRAILER;
- strRules += GetRuleListByPriority(arrAllClientRules, PRIOR_NORMAL, "Client")
- + HTML_TABLES_SEPARATOR;
- }
-
- if (ServerRuleList != null && (iShowAdvRules == 0 || iShowAdvRules == 2 || iShowAdvRules == 4))
- {
- strRules += HTML_TABLE_LABEL_HEADER1 + "#01088b" + HTML_TABLE_LABEL_HEADER2 + TXT_PRO_LOW_MASTER + HTML_TABLE_LABEL_TRAILER;
- strRules += GetRuleListByPriority(arrAllServerRules, PRIOR_LOW, "Server")
- }
-
- if (ServerRuleList != null && (iShowAdvRules == 0 || iShowAdvRules == 2 || iShowAdvRules == 4))
- {
- strRules += "<br><br>" + TXT_SAFETOINJECT + " ";
- var option;
- try
- {
- option = ServerParser.GlobalOptions.Get("SafeToInjectDllGroup")
- }
- catch (e)
- {
- option = ServerParser.GlobalOptions.CreateProperty();
- option.PropertyID = "SafeToInjectDllGroup";
- ServerParser.GlobalOptions.Insert(option);
- }
- strRules += GetDllGroupListHtmlStr( PRIOR_LOW, RA_USER, "SELECT_safegroups", option.Value, 0, strDisabled[PRIOR_LOW]);
- }
-
- strRules += HTML_THIS_DIV_TRAILER;
- return strRules;
- }
-
- function OnDllGroupChange( prio, elem, index, value)
- {
- ServerParser.GlobalOptions.Get("SafeToInjectDllGroup").Value = value;
- }
- function GetRuleListByPriority(arrAllRules, prio, ParserName)
- {
- var strRetVal = '<table width="350" border="0" bgcolor="#E7EFF7"><tr><td width=200>';
- strRetVal += '<A href="#" style="color: Black; text-decoration: none;" ' + strDisabled[prio];
- if (strDisabled[prio] == '')
- strRetVal += 'onclick="OnAdd(' + prio + ',0)"';
- strRetVal += '>' + HTML_INSERT_USER_RULE + '</A></td>';
- if (PRIOR_NORMAL != prio)
- {
- strRetVal += '<td width=175>';
- strRetVal += '<A href="#" style="color: Black; text-decoration: none;" ' + strDisabled[prio];
- if (strDisabled[prio] == '')
- strRetVal += 'onclick="OnAdd(' + prio + ',1)"';
- strRetVal += '>' + HTML_INSERT_SYSTEM_RULE + '</A></td>';
- strRetVal += '</td>';
- }
- strRetVal += '</tr></table>';
- var i;
-
- strRetVal += HTML_TABLE_HEADER;
-
- strRetVal += HTML_ROW_HEADER;
- for (i = 0; i < NO_COLUMNS; i++) {
- strRetVal += HTML_HEADER_HEADER + strHeaders[i] + HTML_HEADER_TRAILER;
- }
- strRetVal += HTML_ROW_TRAILER;
-
- j = arrRuleTriples.length;
- for (i = 0; i < arrAllRules.length; i++)
- {
- var rule = arrAllRules[i];
- var ot = rule.ObjectType
- if (!RuleTripleExists(rule) &&
- (ot == OT_VBAMACRO || ot == OT_SYSTEMPRIV || ot == OT_DEVICEPRIV)
- && rule.Priority == prio)
- {
- var ruleTriple;
- switch (ot)
- {
- case OT_VBAMACRO:
- ruleTriple = new RuleTriple(rule,
- GetSysPrioRule(rule, arrAllRules),
- GetDevPrioRule(rule, arrAllRules)
- );
- break;
- case OT_SYSTEMPRIV:
- ruleTriple = new RuleTriple(GetVBARule(rule, arrAllRules),
- rule,
- GetDevPrioRule(rule, arrAllRules)
- );
- break;
- case OT_DEVICEPRIV:
- ruleTriple = new RuleTriple(GetVBARule(rule, arrAllRules),
- GetSysPrioRule(rule, arrAllRules),
- rule
- );
- break;
- }
- if (RuleTripleContainsRule(ruleTriple))
- {
- arrRuleTriples[j++] = ruleTriple;
- strRetVal += GetRuleHtmlStr(ruleTriple, prio, arrRuleTriples.length - 1);
- }
- }
- }
- strRetVal += HTML_TABLE_TRAILER;
- return strRetVal;
- }
-
- function RuleTripleContainsRule(ruleTriple)
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- return 1;
- return 0;
- }
-
- function GetApplication(ruleTriple)
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- return ruleTriple[i].Application;
- }
-
- function GetPriority(ruleTriple)
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- return ruleTriple[i].Priority;
- }
-
- function GetRuleAccount(ruleTriple)
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- return ruleTriple[i].Account;
- }
-
- function GetRuleID(rule)
- {
- return rule.RuleID & 0x0000ffff;
- }
-
- function GetRuleTripleID(ruleTriple)
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- {
- return ruleTriple[i].RuleID & 0x0000ffff;
- }
- }
-
- function GetAssignment(ruleTriple)
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- {
- return ruleTriple[i].Assignment;
- }
- }
-
- function GetRuleHtmlStr(ruleTriple, prio, index)
- {
- var strRule;
- if (RA_SYSTEM == GetRuleAccount(ruleTriple))
- strRule = HTML_SYSTEM_ROW_HEADER;
- else
- strRule = HTML_ROW_HEADER;
-
- if (!RuleTripleContainsRule(ruleTriple))
- return "";
-
- var ruleAsgnmt = GetAssignment(ruleTriple);
- var ruleAccount = GetRuleAccount(ruleTriple);
-
- switch (iContext)
- {
- case 0:
- ruleAsgnmt = ruleAsgnmt.toLowerCase( );
- if (ruleAsgnmt != "*" && strAsgnmt != TXT_ALLUSERS &&
- ruleAsgnmt.indexOf(strAsgnmt.toLowerCase( )) == -1)
- {
- return "";
- }
- break;
- case 1:
- if (!ctrlAsgnmt.CheckRule(ruleAsgnmt))
- {
- return "";
- }
- break;
- }
-
- var strID = GetRuleTripleID(ruleTriple);
- strRule += HTML_CELL_HEADER + strID + HTML_CELL_TRAILER;
-
- var strAppName = GetApplication(ruleTriple);
- var i;
-
- if (strAppName == '')
- {
- ChangeApplication(ruleTriple, '*');
- if (RA_SYSTEM == ruleAccount)
- strAppName = STR_ALL_SYSTEM;
- else
- strAppName = STR_ALL_NONSYSTEM;
- strRule += HTML_CELL_HEADER +
- GetLabelListHtmlStr(prio, ruleAccount, 'SELECT_' + index, '*', index) +
- HTML_CELL_TRAILER;
- } else
- {
- strRule += HTML_CELL_HEADER;
- var strLinkApp = HTML_ID_LINK_HEADER;
- strLinkApp += 'id="app_' + index + '"';
- strLinkApp += ' onclick= ';
- if (strAppName == '*')
- {
- if (RA_SYSTEM == ruleAccount)
- strAppName = STR_ALL_SYSTEM;
- else
- strAppName = STR_ALL_NONSYSTEM;
- }
- if (strDisabled[prio] == "")
- strLinkApp +=
- '\'AppComboCleanup('+index+');this.outerHTML=GetLabelListHtmlStr(' + prio + ',' + ruleAccount + ',"SELECT_' + index +
- '","' + strAppName + '",' + index +');\' ';
- else
- strLinkApp += '"" ';
- strLinkApp += strDisabled[prio] + '>' + strAppName + HTML_ID_LINK_TRAILER;
- arrLinksApp[index] = strLinkApp;
- strRule += strLinkApp + HTML_CELL_TRAILER;
- }
-
- // for (i = 0; i < 3; i++) // VBA macros and Device Privileges are disabled
- for (i = 1; i < 2; i++)
- {
- var AccessType, j;
- switch (i)
- {
- case 0: // VBA_macro:
- strRule +=
- HTML_CELL_HEADER + GenerateVBAAccessResult(ruleTriple[i], prio, 1,
- '"OnVBAAccessResultChange(' + index + ',1,parseInt(this.value),' + prio +')"');
- strRule += " " + GenerateVBAAuditLevel(ruleTriple[i], prio, 1,
- '"OnVBAAuditLevelChange(' + index + ',1,parseInt(this.value),' + prio +')"') + HTML_CELL_TRAILER;
- strRule +=
- HTML_CELL_HEADER + GenerateVBAAccessResult(ruleTriple[i], prio, 0,
- '"OnVBAAccessResultChange(' + index + ',0,parseInt(this.value),' + prio +')"');
- strRule += " " + GenerateVBAAuditLevel(ruleTriple[i], prio, 0,
- '"OnVBAAuditLevelChange(' + index + ',0,parseInt(this.value),' + prio +')"') + HTML_CELL_TRAILER;
- break;
- case 1: // System privileges
- for (j = 0; j < 6; j++)
- {
- strRule +=
- HTML_CELL_HEADER + GenerateAccessResult(ruleTriple[i], prio, SysprivAccessTypes[j],
- '"OnAccessResultRotate(' + index + ',' + i + ',' + SysprivAccessTypes[j] + ',' +
- 'this,' + prio + ')"');
-
- strRule += " " + GenerateAuditLevel(ruleTriple[i], prio, SysprivAccessTypes[j],
- '"OnAuditLevelRotate(' + index + ',' + i + ',' + SysprivAccessTypes[j] + ',' +
- 'this,' + prio + ')"') + HTML_CELL_TRAILER;
- }
- break;
- case 2: // Device privilege
- strRule +=
- HTML_CELL_HEADER + GenerateAccessResult(ruleTriple[i], prio, AT_DEVPRIV_DANGEROUSDEVICEACCESS,
- '"OnAccessResultRotate(' + index + ',' + i + ',' + AT_DEVPRIV_DANGEROUSDEVICEACCESS + ',' +
- 'this,' + prio + ')"');
- strRule += " " + GenerateAuditLevel(ruleTriple[i], prio, AT_DEVPRIV_DANGEROUSDEVICEACCESS,
- '"OnAuditLevelRotate(' + index + ',' + i + ',' + AT_DEVPRIV_DANGEROUSDEVICEACCESS + ',' +
- 'this,' + prio + ')"') + HTML_CELL_TRAILER;
- break;
- }
- }
-
- if (iManaged == 0 /* Home Version */ && prio != PRIOR_NORMAL ||
- iManaged == 1 && iContext == 1 /* BBE */)
- {
- strRule += HTML_CELL_HEADER;
- strAsgnDisabled = strDisabled[prio];
- if (iProductType == 1)
- strAsgnDisabled = HTML_DISABLED;
- if (iManaged)
- {
- strRule += HTML_ID_EDIT_HEADER + ' value="' + GetAssignment(ruleTriple) + '"' +
- ' onchange="OnAsgnmtChange(' + index + ',this.value);" ' + strAsgnDisabled + HTML_ID_EDIT_TRAILER;
- } else
- {
- strRule += HTML_ID_LINK_HEADER;
- strRule += ' onclick=';
- if (strAsgnDisabled == '')
- strRule += '"OnUsersChange(' + index +');"';
- else
- strRule += '"" ';
- strRule += strAsgnDisabled + '>' + GetAssignment(ruleTriple) + '</A>';
- }
- strRule += HTML_CELL_TRAILER;
- }
- else
- {
- strRule += HTML_CELL_HEADER + HTML_CELL_TRAILER;
- }
-
- strRule += HTML_CELL_HEADER +
- '<A href="#" ' + strDisabled[prio];
- if (strDisabled[prio] == "")
- strRule += 'onclick="OnDelete(' + prio + ',' + index + ')"';
- strRule += '>' + HTML_ICO_MINUS + HTML_CELL_TRAILER;
-
- strRule += HTML_ROW_TRAILER;
- return strRule;
- }
-
-
- function RuleTripleExists(rule)
- {
- var appRule = rule.Application;
- var rulePrio = rule.Priority;
- var ruleOT = rule.ObjectType;
- var asgnmtRule = rule.Assignment;
- var indIntoTriple;
- switch (ruleOT)
- {
- case OT_VBAMACRO:
- indIntoTriple = 0;
- break;
- case OT_SYSTEMPRIV:
- indIntoTriple = 1;
- break;
- case OT_DEVICEPRIV:
- indIntoTriple = 2;
- break;
- }
- for (i = 0; i < arrRuleTriples.length; i++)
- {
- if ( GetPriority(arrRuleTriples[i]) == rulePrio &&
- GetApplication(arrRuleTriples[i]) == appRule &&
- GetAssignment(arrRuleTriples[i]) == asgnmtRule &&
- arrRuleTriples[i][indIntoTriple] == rule)
- return 1;
- }
- return 0;
- }
-
-
- function GetVBARule(rule, arrAllRules)
- {
- var strApplication = rule.Application;
- var ruleFound = null;
- var i;
-
- for (i = 0; i < arrAllRules.length; i++)
- {
- var ruleCur = arrAllRules[i];
- if (ruleCur.ObjectType == OT_VBAMACRO &&
- ruleCur.Application == strApplication)
- {
- ruleFound = ruleCur;
- break;
- }
- }
- return ruleFound;
- }
-
- function GetSysPrioRule(rule, arrAllRules)
- {
- var strApplication = rule.Application;
- var ruleFound = null;
- var i;
-
- for (i = 0; i < arrAllRules.length; i++)
- {
- var ruleCur = arrAllRules[i];
- if (ruleCur.ObjectType == OT_SYSTEMPRIV &&
- ruleCur.Application == strApplication)
- {
- ruleFound = ruleCur;
- break;
- }
- }
- return ruleFound;
- }
-
- function GetDevPrioRule(rule, arrAllRules)
- {
- var strApplication = rule.Application;
- var ruleFound = null;
- var i;
-
- for (i = 0; i < arrAllRules.length; i++)
- {
- var ruleCur = arrAllRules[i];
- if (ruleCur.ObjectType == OT_DEVICEPRIV &&
- ruleCur.Application == strApplication)
- {
- ruleFound = ruleCur;
- break;
- }
- }
- return ruleFound;
- }
-
- function OnAdd(priority, account)
- {
- var ruleList;
- switch (priority)
- {
- case PRIOR_HIGH:
- case PRIOR_LOW:
- ruleList = ServerRuleList;
- break;
- case PRIOR_NORMAL:
- ruleList = ClientRuleList;
- }
-
- var newRule = ruleList.CreateRule();
- switch (priority)
- {
- case PRIOR_HIGH:
- case PRIOR_LOW:
- SetRuleID(newRule, 1, ++iMaxServerId, 1);
- break;
- case PRIOR_NORMAL:
- SetRuleID(newRule, 1, ++iMaxClientId, 0);
- }
- newRule.Application = '';
- newRule.Priority = priority;
- newRule.ObjectType = OT_SYSTEMPRIV;
- newRule.Path = "*";
- newRule.PathType = RT_DEFINITION;
- newRule.Assignment = (iContext ? dhtmlctrl.Assignment : "*");
- newRule.Account = account;
- ruleList.Insert(newRule, newRule);
- _ruleList.innerHTML = GetRuleList();
- }
-
- function OnDelete(priority, index)
- {
- var arg = new Array(2);
- var i;
- var strNewAsgnmt = "";
- var curStrAsgnmt = (iContext ? ctrlAsgnmt.Assignment : strAsgnmt);
-
- if (iContext == 1 && !ctrlAsgnmt.IsEmptyOrAll(curStrAsgnmt))
- {
- try
- {
- ruleTriple = arrRuleTriples[index];
- strNewAsgnmt = ctrlAsgnmt.Remove(GetAssignment(ruleTriple));
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- ruleTriple[i].Assignment = strNewAsgnmt;
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- if (iContext == 0 || strNewAsgnmt == "")
- {
-
- arg[0] = TXT_QST_REALLYDELETE1 + '"' + GetApplication(arrRuleTriples[index]) + '"' +
- TXT_QST_REALLYDELETE2;
- arg[1] = TXT_DELETING;
- var answer=showModalDialog('question.html', arg, 'dialogWidth=300pt;dialogHeight=100pt;');
- if (answer == 0)
- return;
-
- var Parser;
- switch (priority)
- {
- case PRIOR_HIGH:
- case PRIOR_LOW:
- ruleList = ServerRuleList;
- break;
- case PRIOR_NORMAL:
- ruleList = ClientRuleList;
- break;
- }
-
- try
- {
- ruleTriple = arrRuleTriples[index];
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- ruleList.Remove(ruleTriple[i]);
- } catch (e)
- {
- alert("Access violation");
- }
- }
- _ruleList.innerHTML = GetRuleList();
- }
-
- function OnAppChange(prio, elem, index, value)
- {
- var i;
- var ruleTriple, ruleAccount;
- try
- {
- ruleTriple = arrRuleTriples[index];
- for (i = 0; i < 3; i++)
- {
- if (ruleTriple[i] != null)
- {
- arrRuleTriples[index][i].Application = value;
- arrRuleTriples[index][i].AppType = arrLabelTypes[value];
- }
- }
- } catch (e)
- {
- alert("Access violation");
- }
- var strLinkApp = HTML_ID_LINK_HEADER;
- strLinkApp += 'id="app_' + index + '"';
- strLinkApp += ' onclick=';
- ruleAccount = GetRuleAccount(ruleTriple);
- if (strDisabled[prio] == "")
- strLinkApp +=
- '\'AppComboCleanup('+index+');this.outerHTML=GetLabelListHtmlStr(' + prio + ',' + ruleAccount + ',"SELECT_' + index +
- '","' + value + '",' + index +');\' ';
- else
- strLinkApp += '"" ';
-
- var strAppName = value;
-
- if ('*' == strAppName)
- {
- if (RA_SYSTEM == ruleAccount)
- strAppName = STR_ALL_SYSTEM;
- else
- strAppName = STR_ALL_NONSYSTEM;
- }
-
- strLinkApp += strDisabled[prio] + '>' + strAppName + HTML_ID_LINK_TRAILER;
- arrLinksApp[index] = strLinkApp;
- elem.outerHTML = strLinkApp;
- }
-
- function AppComboCleanup(index)
- {
- var iIndex = parseInt(index);
- if (document.getElementById)
- {
- var combo = document.getElementById("SELECT_"+iLastIndex);
- if (combo)
- {
- combo.outerHTML = arrLinksApp[iLastIndex];
- }
- }
- iLastIndex = iIndex;
- }
-
- function OnIDChange(index, value, priority)
- {
- try
- {
- SetRuleTripleID(arrRuleTriples[index], parseInt(value), (priority==PRIOR_HIGH || priority==PRIOR_LOW) ? 1 : 0);
- } catch (e)
- {
- alert("ID already exists");
- }
- }
-
- function OnAccessResultChange(index, subindex, accessType, value, prio)
- {
- try
- {
- var rule = arrRuleTriples[index][subindex];
- var adList;
- if (rule == null)
- {
- rule = CreateRule(index, subindex, prio);
- }
- adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- {
- accessDescriptor = adList.CreateAccessDescriptor();
- accessDescriptor.AccessType = accessType;
- accessDescriptor.AuditLevel = AL_IGNORE;
- adList.Insert(accessDescriptor);
- }
- accessDescriptor.AccessResult = value;
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnAccessResultRotate(index, subindex, accessType, elem, prio)
- {
- var arCur = -1, arNext = -1;
- var src = elem.innerHTML;
- var idxAllow = src.search(arrARImgSrc[AR_ALLOW]),
- idxPrevent = src.search(arrARImgSrc[AR_PREVENT]),
- idxAskUser = src.search(arrARImgSrc[AR_ASKUSER]);
- if (idxAllow != -1)
- {
- arCur = AR_ALLOW;
- arNext = AR_PREVENT;
- } else if (idxPrevent != -1)
- {
- arCur = AR_PREVENT;
- if (iShowAdvRules == 0 && prio == PRIOR_LOW)
- arNext = AR_ASKUSER;
- else
- arNext = AR_ALLOW;
- } else if (idxAskUser != -1)
- {
- arCur = AR_ASKUSER;
- arNext = AR_ALLOW;
- }
- if (arNext != -1)
- try
- {
- var rule = arrRuleTriples[index][subindex];
- var adList;
- if (rule == null)
- {
- rule = CreateRule(index, subindex, prio);
- }
- adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- {
- accessDescriptor = adList.CreateAccessDescriptor();
- accessDescriptor.AccessType = accessType;
- accessDescriptor.AuditLevel = AL_IGNORE;
- adList.Insert(accessDescriptor);
- }
- accessDescriptor.AccessResult = arNext;
- src = src.replace(arrARImgSrc[arCur], arrARImgSrc[arNext]);
- src = src.replace(arrARTitles[arCur], arrARTitles[arNext]);
- elem.innerHTML = src;
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnVBAAccessResultChange(index, macroNotAuto, value, prio)
- {
- try
- {
- var rule = arrRuleTriples[index][0];
- if (rule == null)
- {
- rule = CreateRule(index, subindex, prio);
- }
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null, accessDescriptor2 = null;
- while (!adEnum.atEnd())
- // find VBA access descriptors
- {
- var acCur = adEnum.item();
- var atCur = acCur.AccessType;
- if (macroNotAuto && ( atCur == AT_VBA_MACRO_RUN_IN_ORIG ||
- atCur == AT_VBA_MACRO_RUN_IN_SPECIAL)
- || !macroNotAuto && ( atCur == AT_VBA_AUTO_RUN_IN_ORIG ||
- atCur == AT_VBA_AUTO_RUN_IN_SPECIAL)
- )
- {
- accessDescriptor = acCur;
-
- switch(value)
- {
- case 0:
- acCur.AccessResult = AR_ALLOW;
- break;
- case 2:
- acCur.AccessResult = AR_PREVENT;
- break;
- case 1:
- if ( atCur == AT_VBA_MACRO_RUN_IN_ORIG ||
- atCur == AT_VBA_AUTO_RUN_IN_ORIG
- )
- acCur.AccessResult = AR_PREVENT;
- else
- acCur.AccessResult = AR_ALLOW;
- break;
- }
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- // access descriptors for this access type do not exist yet
- {
- accessDescriptor = adList.CreateAccessDescriptor();
- accessDescriptor2 = adList.CreateAccessDescriptor();
- accessDescriptor.AuditLevel = AL_IGNORE;
- accessDescriptor2.AuditLevel = AL_IGNORE;
- if (macroNotAuto)
- {
- accessDescriptor.AccessType = AT_VBA_MACRO_RUN_IN_ORIG;
- accessDescriptor2.AccessType = AT_VBA_MACRO_RUN_IN_SPECIAL;
- } else
- {
- accessDescriptor.AccessType = AT_VBA_AUTO_RUN_IN_ORIG;
- accessDescriptor2.AccessType = AT_VBA_AUTO_RUN_IN_SPECIAL;
- }
- switch(value)
- {
- case 0:
- accessDescriptor.AccessResult = AR_ALLOW;
- accessDescriptor2.AccessResult = AR_ALLOW;
- break;
- case 1:
- accessDescriptor.AccessResult = AR_PREVENT;
- accessDescriptor2.AccessResult = AR_ALLOW;
- break;
- case 2:
- accessDescriptor.AccessResult = AR_PREVENT;
- accessDescriptor2.AccessResult = AR_PREVENT;
- break;
- }
- adList.Insert(accessDescriptor);
- adList.Insert(accessDescriptor2);
- }
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnAuditLevelChange(index, subindex, accessType, value, prio)
- {
- try
- {
- var rule = arrRuleTriples[index][subindex];
- if (rule == null)
- {
- rule = CreateRule(index, subindex, prio);
- }
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- {
- accessDescriptor = adList.CreateAccessDescriptor();
- accessDescriptor.AccessType = accessType;
- accessDescriptor.AccessResult = AR_ALLOW;
- adList.Insert(accessDescriptor);
- }
- accessDescriptor.AuditLevel = value;
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnAuditLevelRotate(index, subindex, accessType, elem, prio)
- {
- var alCur = -1, alNext = -1;
- var src = elem.innerHTML;
- var idxIgnore = src.search(arrALImgSrc[AL_IGNORE]),
- idxMonitor = src.search(arrALImgSrc[AL_MONITOR]),
- idxAlert = src.search(arrALImgSrc[AL_ALERT]);
- if (idxIgnore != -1)
- {
- alCur = AL_IGNORE;
- alNext = AL_MONITOR;
- } else if (idxMonitor != -1)
- {
- alCur = AL_MONITOR;
- // do not allow Alert on System Shutdown
- if (AT_SYSPRIV_SYSTEMSHUTDOWN == accessType)
- alNext = AL_IGNORE;
- else
- alNext = AL_ALERT;
- } else if (idxAlert != -1)
- {
- alCur = AL_ALERT;
- alNext = AL_IGNORE;
- }
- if (alNext != -1)
- try
- {
- var rule = arrRuleTriples[index][subindex];
- if (rule == null)
- {
- rule = CreateRule(index, subindex, prio);
- }
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- {
- accessDescriptor = adList.CreateAccessDescriptor();
- accessDescriptor.AccessType = accessType;
- accessDescriptor.AccessResult = AR_ALLOW;
- adList.Insert(accessDescriptor);
- }
- accessDescriptor.AuditLevel = alNext;
- src = src.replace(arrALImgSrc[alCur], arrALImgSrc[alNext]);
- src = src.replace(arrALTitles[alCur], arrALTitles[alNext]);
- elem.innerHTML = src;
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnVBAAuditLevelChange(index, macroNotAuto, value, prio)
- {
- try
- {
- var rule = arrRuleTriples[index][0];
- if (rule == null)
- {
- rule = CreateRule(index, subindex, prio);
- }
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null, accessDescriptor2 = null;
- while (!adEnum.atEnd())
- // find VBA access descriptors
- {
- var acCur = adEnum.item();
- var atCur = acCur.AccessType;
- if (macroNotAuto && ( atCur == AT_VBA_MACRO_RUN_IN_ORIG ||
- atCur == AT_VBA_MACRO_RUN_IN_SPECIAL)
- || !macroNotAuto && ( atCur == AT_VBA_AUTO_RUN_IN_ORIG ||
- atCur == AT_VBA_AUTO_RUN_IN_SPECIAL)
- )
- {
- accessDescriptor = acCur;
- acCur.AuditLevel = value;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- // access descriptors for this access type do not exist yet
- {
- accessDescriptor = adList.CreateAccessDescriptor();
- accessDescriptor2 = adList.CreateAccessDescriptor();
- accessDescriptor.AccessResult = AR_ALLOW;
- accessDescriptor2.AccessResult = AR_ALLOW;
- accessDescriptor.AuditLevel = value;
- accessDescriptor2.AuditLevel = value;
-
- if (macroNotAuto)
- {
- accessDescriptor.AccessType = AT_VBA_MACRO_RUN_IN_ORIG;
- adList.Insert(accessDescriptor);
- accessDescriptor2.AccessType = AT_VBA_MACRO_RUN_IN_SPECIAL;
- adList.Insert(accessDescriptor2);
- } else
- {
- accessDescriptor.AccessType = atCur == AT_VBA_AUTO_RUN_IN_ORIG;
- adList.Insert(accessDescriptor);
- accessDescriptor2.AccessType = AT_VBA_AUTO_RUN_IN_SPECIAL;
- adList.Insert(accessDescriptor2);
- }
- }
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnUsersChange(index)
- {
- var ruleTriple = arrRuleTriples[index];
- var strNewUsers = showModalDialog('UsersDlg.html', new Array(GetAssignment(ruleTriple)), 'dialogWidth=215pt;dialogHeight=200pt;');
- try
- {
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- ruleTriple[i].Assignment = strNewUsers;
- _ruleList.innerHTML = GetRuleList();
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function OnAsgnmtChange(index, newVal)
- {
- try
- {
- var ruleTriple = arrRuleTriples[index];
- var i;
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- ruleTriple[i].Assignment = newVal;
- _ruleList.innerHTML = GetRuleList();
- } catch (e)
- {
- alert("Access violation");
- }
- }
-
- function GenerateAccessResultCombo(rule, prio, accessType, strOnChange)
- {
- var strARList = HTML_SELECT_HEADER + strDisabled[prio] + ' onchange=' + strOnChange + '>';
- var i, iCurAR; // access result set for this rule and access type
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurAR = AR_ALLOW;
- else
- iCurAR = accessDescriptor.AccessResult;
- } else
- iCurAR = AR_ALLOW;
-
- for (i = AR_PREVENT; i <= AR_ASKUSER; i++)
- {
- if (prio == PRIOR_HIGH && i == AR_ASKUSER) // AskUser is not available for HighPriority rules
- continue;
- strARList += '<OPTION value="' + i + '"';
- if (i == iCurAR)
- {
- strARList += ' selected ';
- }
- strARList += '>' + arrAccessResultStrings[i] + '</OPTION>';
- }
- strARList += HTML_SELECT_TRAILER;
- return strARList;
- }
-
- function GenerateAccessResult(rule, prio, accessType, strOnChange)
- {
- var strARList = '<A ' + strDisabled[prio];
- if (strDisabled[prio] == '')
- strARList += ' onclick=' + strOnChange;
- strARList += '>';
- var i, iCurAR; // access result set for this rule and access type
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurAR = AR_ALLOW;
- else
- iCurAR = accessDescriptor.AccessResult;
- } else
- iCurAR = AR_ALLOW;
-
- strARList += '<IMG src="' + arrARImgSrc[iCurAR] + '" title="' + arrARTitles[iCurAR] + '"></IMG>';
- strARList += '</A>';
- return strARList;
- }
-
- function GenerateAuditLevel(rule, prio, accessType, strOnChange)
- {
- var strALList = '<A ' + strDisabled[prio];
- if (strDisabled[prio] == '')
- strALList += ' onclick=' + strOnChange;
- strALList += '>';
- var i, iCurAL; // access result set for this rule and access type
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurAL = AL_IGNORE;
- else
- iCurAL = accessDescriptor.AuditLevel;
- } else
- iCurAL = AL_IGNORE;
-
- strALList += '<IMG src="' + arrALImgSrc[iCurAL] + '" title="' + arrALTitles[iCurAL] + '"></IMG>';
- strALList += '</A>';
- return strALList;
- }
-
- function GenerateVBAAccessResult(rule, prio, macroOrAuto, strOnChange)
- {
- var strARList = HTML_SELECT_HEADER + strDisabled[prio] + ' onchange=' + strOnChange + '>';
- var i, iCurOption;
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- iCurOption = 2;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- var atCur = acCur.AccessType;
- if ( macroOrAuto && (atCur == AT_VBA_MACRO_RUN_IN_ORIG ||
- atCur == AT_VBA_MACRO_RUN_IN_SPECIAL) ||
- !macroOrAuto && (atCur == AT_VBA_AUTO_RUN_IN_ORIG ||
- atCur == AT_VBA_AUTO_RUN_IN_SPECIAL) )
- {
- accessDescriptor = acCur;
- if ( atCur == AT_VBA_MACRO_RUN_IN_ORIG ||
- atCur == AT_VBA_AUTO_RUN_IN_ORIG )
- {
- if (acCur.AccessResult == AR_ALLOW)
- {
- iCurOption = 0;
- break;
- }
-
- }
- if ( atCur == AT_VBA_MACRO_RUN_IN_SPECIAL ||
- atCur == AT_VBA_AUTO_RUN_IN_SPECIAL )
- {
- if (acCur.AccessResult == AR_ALLOW)
- {
- iCurOption = 1;
- break;
- }
- }
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurOption = 0;
- } else
- iCurOption = 0;
-
- for (i = 0; i <= 2; i++)
- {
- strARList += '<OPTION value="' + i + '"';
- if (i == iCurOption)
- {
- strARList += ' selected ';
- }
- strARList += '>' + arrVBAOptions[i] + '</OPTION>';
- }
- strARList += HTML_SELECT_TRAILER;
- return strARList;
- }
-
- function GenerateShutdownAuditLevel(rule, prio, accessType, strOnChange)
- {
- var strALList = HTML_SELECT_HEADER + strDisabled[prio] + ' onchange=' + strOnChange + '>';
- var i, iCurAL; // access result set for this rule and access type
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurAL = AL_IGNORE;
- else
- iCurAL = accessDescriptor.AuditLevel;
- } else
- iCurAL = AL_IGNORE;
-
- for (i = AL_IGNORE; i <= AL_MONITOR; i++)
- {
- strALList += '<OPTION value="' + i + '"';
- if (i == iCurAL)
- {
- strALList += ' selected ';
- }
- strALList += '>' + arrAuditLevelStrings[i] + '</OPTION>';
- }
- strALList += HTML_SELECT_TRAILER;
- return strALList;
- }
-
- function GenerateAuditLevelCombo(rule, prio, accessType, strOnChange)
- {
- var strALList = HTML_SELECT_HEADER + strDisabled[prio] + ' onchange=' + strOnChange + '>';
- var i, iCurAL; // access result set for this rule and access type
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- if (acCur.AccessType == accessType)
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurAL = AL_IGNORE;
- else
- iCurAL = accessDescriptor.AuditLevel;
- } else
- iCurAL = AL_IGNORE;
-
- for (i = AL_IGNORE; i <= AL_ALERT; i++)
- {
- strALList += '<OPTION value="' + i + '"';
- if (i == iCurAL)
- {
- strALList += ' selected ';
- }
- strALList += '>' + arrAuditLevelStrings[i] + '</OPTION>';
- }
- strALList += HTML_SELECT_TRAILER;
- return strALList;
- }
-
- function GenerateVBAAuditLevel(rule, prio, macroOrAuto, strOnChange)
- {
- var strALList = HTML_SELECT_HEADER + strDisabled[prio] + ' onchange=' + strOnChange + '>';
- var i, iCurAL; // access result set for this rule and access type
- if (rule != null)
- {
- var enumARDesc = new Enumerator(rule.AccessDescriptorList);
-
- // find access descriptor for this access type
- var adList = rule.AccessDescriptorList;
- var adEnum = new Enumerator(adList);
- adEnum.moveFirst();
- var accessDescriptor = null;
- while (!adEnum.atEnd())
- {
- var acCur = adEnum.item();
- var atCur = acCur.AccessType;
- if (macroOrAuto && (acCur.AccessType == AT_VBA_MACRO_RUN_IN_ORIG ||
- acCur.AccessType == AT_VBA_MACRO_RUN_IN_SPECIAL) ||
- !macroOrAuto && (acCur.AccessType == AT_VBA_AUTO_RUN_IN_ORIG ||
- acCur.AccessType == AT_VBA_AUTO_RUN_IN_SPECIAL) )
- {
- accessDescriptor = acCur;
- break;
- }
- adEnum.moveNext();
- }
- if (accessDescriptor == null)
- iCurAL = AL_IGNORE;
- else
- iCurAL = accessDescriptor.AuditLevel;
- } else
- iCurAL = AL_IGNORE;
-
- for (i = AL_IGNORE; i <= AL_MONITOR; i++)
- {
- strALList += '<OPTION value="' + i + '"';
- if (i == iCurAL)
- {
- strALList += ' selected ';
- }
- strALList += '>' + arrAuditLevelStrings[i] + '</OPTION>';
- }
- strALList += HTML_SELECT_TRAILER;
- return strALList;
- }
-
- function ChangeApplication(ruleTriple, appNew)
- {
- var i;
- for (i = 0; i < 3; i++)
- {
- if (ruleTriple[i] != null)
- ruleTriple[i].Application = appNew;
- SetRuleTripleAppType(ruleTriple, arrLabelTypes[appNew]);
- }
- }
-
- function SetRuleID(rule, type, value, bIsServer)
- {
- var ruleId = value | bIsServer<<16 | arrGuardIds[type]<<24;
- rule.RuleID = ruleId;
- }
-
- function SetRuleIDFromTriple(subindex, ruleTriple, bIsServer)
- {
- var i, id = 0;
- for (i = 0; i < 3; i++)
- if (subindex != i && ruleTriple[i] != null)
- {
- id = ruleTriple[i].RuleID & 0x0000ffff;
- break;
- }
- var ruleId = id | bIsServer<<16 | arrGuardIds[subindex]<<24;
- ruleTriple[subindex].RuleID = ruleId;
- }
-
- function SetRuleTripleID(ruleTriple, id, bIsServer)
- {
- var i;
- for (i = 0; i < 3; i++)
- {
- var ruleId = arrGuardIds[i]<<24 | bIsServer<<16 | id;
- if (ruleTriple[i] != null)
- ruleTriple[i].RuleID = ruleId;
- }
- }
-
- function SetRuleTripleAppType(ruleTriple, appType)
- {
- var i;
- for (i = 0; i < 3; i++)
- {
- if (ruleTriple[i] != null)
- ruleTriple[i].AppType = appType;
- }
- }
-
- function CreateRule(index, subindex, priority)
- {
- var ruleList, ruleTriple = arrRuleTriples[index];
- var strApp = "", iAppType = 0, strAssignment = "";
- var i;
- switch(priority)
- {
- case PRIOR_LOW:
- case PRIOR_HIGH:
- ruleList = ServerRuleList;
- break;
- case PRIOR_NORMAL:
- ruleList = ClientRuleList;
- break;
- }
-
- for (i = 0; i < 3; i++)
- if (ruleTriple[i] != null)
- {
- strApp = ruleTriple[i].Application;
- iAppType = ruleTriple[i].AppType;
- strAssignment = ruleTriple[i].Assignment;
- }
- if (strApp == "")
- {
- alert("Failed to create rule");
- return;
- }
- var ruleNew = ruleList.CreateRule();
- ruleNew.Application = strApp;
- ruleNew.AppType = iAppType;
- switch (subindex)
- {
- case 0:
- ruleNew.ObjectType = OT_VBAMACRO;
- break;
- case 1:
- ruleNew.ObjectType = OT_SYSTEMPRIV;
- break;
- case 2:
- ruleNew.ObjectType = OT_DEVICEPRIV;
- break;
- }
- ruleNew.Priority = priority;
- ruleNew.Path = "*";
- ruleNew.PathType = RT_DEFINITION;
- ruleNew.Assignment = strAssignment;
- ruleList.Insert(ruleNew, ruleNew);
- ruleTriple[subindex] = ruleNew;
- SetRuleIDFromTriple(subindex, ruleTriple, (priority == PRIOR_HIGH || priority == PRIOR_LOW) ? 1 : 0);
- return ruleNew;
- }
-
- function AddToAssignment()
- {
- ctrlAsgnmt.AddFromSBXList(OT_VBAMACRO, ClientParser, ServerParser, ClientAppParser, ServerAppParser );
- _ruleList.innerHTML = GetRuleList();
- }
-